AI Cafe¹
© Bản quyền thuộc về Quantopian Inc.
© Bản quyền sửa đổi thuộc về AI Cafe¹
Giấy phép Creative Commons Attribution 4.0.
Khuyến cáo

Open in Colab¶

Phân tích nhân tố với Alphalens¶

by Maxwell Margenot, Gil Wassermann, James Christopher Hall, and Delaney Granizo-Mackenzie

Edited by AI Cafe¹

Làm thế nào chúng ta có thể biết một yếu tố alpha có tốt hay không? Thật không may, không có một ngưỡng nào cho bạn biết liệu một yếu tố có thực sự hữu ích hay không. Thay vào đó, chúng ta cần so sánh một yếu tố cụ thể với các lựa chọn khác trước khi quyết định có sử dụng nó hay không. Mục tiêu cuối cùng của chúng ta trong việc định nghĩa và chọn các yếu tố tốt nhất là sử dụng chúng để xếp hạng cổ phiếu trong một chiến lược cổ phiếu Long-Short. Các yếu tố mà chúng ta sử dụng càng độc lập trong việc dự đoán, thì kế hoạch xếp hạng và chiến lược tổng thể của chúng ta sẽ càng tốt hơn.

Điều chúng ta muốn khi so sánh các yếu tố là đảm bảo rằng tín hiệu được chọn thực sự dự đoán được các biến động giá tương đối. Chúng ta không muốn dự đoán số lượng tuyệt đối mà các tài sản trong tập vũ trụ của chúng ta sẽ tăng hoặc giảm. Chúng ta chỉ quan tâm rằng chúng ta có thể chọn được những tài sản để mua sẽ hoạt động tốt hơn so với những tài sản mà chúng ta bán. Trong một chiến lược cổ phiếu Long-Short, chúng ta giữ một rổ tài sản Long và một rổ tài sản Short, được xác định bởi các giá trị yếu tố liên quan đến từng tài sản trong tập vũ trụ của chúng ta. Nếu kế hoạch xếp hạng của chúng ta có khả năng dự đoán, điều này có nghĩa là các tài sản trong rổ trên sẽ có xu hướng hoạt động tốt hơn các tài sản trong rổ dưới. Miễn là sự chênh lệch này nhất quán theo thời gian, chiến lược của chúng ta sẽ có lợi nhuận dương.

Một yếu tố đơn lẻ có thể có nhiều phần cần đánh giá, nhưng lý tưởng nhất là nó nên độc lập với các yếu tố khác mà bạn đã giao dịch để giữ cho danh mục đầu tư đa dạng. Chúng ta thảo luận về lý do cho điều này trong bài giảng Rủi ro Tập trung Vị trí.

Trong bài giảng này, chúng ta sẽ chi tiết và giải thích các thống kê liên quan để đánh giá yếu tố alpha trước khi cố gắng triển khai nó trong một thuật toán. Điều quan trọng cần nhớ là tất cả các chỉ số được cung cấp ở đây đều tương đối với các yếu tố khác mà bạn có thể đang giao dịch hoặc đánh giá.

Đánh giá một Yếu tố với Alphalens¶

Để đánh giá xem một yếu tố có khả thi hay không, chúng ta có thể sử dụng thư viện Alphalens. Mã nguồn của nó có sẵn trên github cho những ai muốn tìm hiểu chi tiết về cách hoạt động của nó. Chúng ta sử dụng Alphalens để tạo ra một "tear sheet" của một yếu tố, tương tự như cách mà chúng ta sử dụng pyfolio để tạo ra một tear sheet để phân tích kết quả backtest.

In [ ]:
!pip install -q alphalens-reloaded
In [2]:
import alphalens as al

import warnings
warnings.filterwarnings('ignore')

Alphalens phân tích yếu tố của bạn và xem xét mức độ hữu ích của nó trong việc dự đoán giá trị tương đối thông qua một bộ các chỉ số khác nhau. Nó chia tất cả các cổ phiếu trong vũ trụ mà bạn chọn thành các phần tử khác nhau dựa trên thứ hạng của chúng theo yếu tố của bạn và phân tích lợi suất, hệ số thông tin (IC), tỷ lệ giao dịch của mỗi phần tử, và cung cấp một phân tích chi tiết về lợi suất và IC theo ngành (hoặc nhóm khác).

Trong suốt khóa học này, chúng ta sẽ lần lượt xem xét các phần chính của một tear sheet Alphalens và chi tiết cách diễn giải các biểu đồ riêng lẻ khác nhau. Để làm điều này, chúng ta sẽ phác thảo các bước trung gian cần thiết để đi từ định nghĩa đến một tear sheet. Cuối cùng của bài giảng, chúng tôi sẽ giới thiệu một cách dễ dàng hơn để bỏ qua các bước trung gian và tạo ra toàn bộ tear sheet cùng một lúc.

Tập vũ trụ và dữ liệu¶

Ở đây, chúng ta sử dụng danh sách cổ phiếu trong VN100 làm tập dữ liệu minh hoạ cho bài giảng

In [3]:
VN100 = "AAA,ACB,ANV,BCG,BCM,BID,BMP,BSI,BVH,BWE,CII,CMG,CTD,CTG,CTR,CTS,DBC,DCM,DGC,DGW,DIG,DPM,DSE,DXG,DXS,EIB,EVF,FPT,FRT,FTS,GAS,GEX,GMD,GVR,HAG,HCM,HDB,HDC,HDG,HHV,HPG,HSG,HT1,IMP,KBC,KDC,KDH,KOS,LPB,MBB,MSB,MSN,MWG,NAB,NKG,NLG,NT2,OCB,PAN,PC1,PDR,PHR,PLX,PNJ,POW,PPC,PTB,PVD,PVT,REE,SAB,SBT,SCS,SHB,SIP,SJS,SSB,SSI,STB,SZC,TCB,TCH,TLG,TPB,VCB,VCG,VCI,VGC,VHC,VHM,VIB,VIC,VIX,VJC,VND,VNM,VPB,VPI,VRE,VTP".split(',')
len(VN100)
Out[3]:
100
In [4]:
# Cài thư viện lấy dữ liệu miễn phí
!curl -fsSLO https://raw.githubusercontent.com/algo-stocks/data/master/data.py
In [5]:
from data import get_prices

start = '2024-01-01'
end = '2025-01-01'

prices = get_prices(*VN100, start_date=start, end_date=end).ffill()
prices.iloc[:5,:5]
Out[5]:
AAA ACB ANV BCG BCM
date
2024-01-02 9.43 20.538 15.2706 7.5728 60.9715
2024-01-03 9.62 21.000 15.6154 7.6364 60.5775
2024-01-04 9.60 21.252 15.4923 7.6455 59.8880
2024-01-05 9.53 21.378 15.8371 7.5819 59.5925
2024-01-08 9.70 21.294 15.7386 7.6364 59.3955

Động lực (Momentum)¶

Ở đây, chúng ta sẽ sử dụng một yếu tố động lực làm ví dụ. Các yếu tố động lực là một dạng yếu tố alpha rất phổ biến và chúng có nhiều hình dáng và kích cỡ khác nhau. Tuy nhiên, tất cả đều cố gắng truyền tải cùng một ý tưởng, rằng các chứng khoán đang tăng/giảm giá sẽ tiếp tục tăng/giảm giá. Các yếu tố động lực cố gắng định lượng các xu hướng trên thị trường tài chính và "lướt sóng", nếu có thể nói như vậy.

Việc tính toán giá trị Momentum cho khoảng thời gian 1 tháng có thể thực hiện như sau:

In [6]:
momentum = prices.pct_change(periods=21).dropna()
momentum = momentum.reset_index().melt(id_vars='date', var_name='asset').set_index(['date', 'asset']).sort_index()
momentum.head()
Out[6]:
value
date asset
2024-07-30 AAA 0.071429
ACB 0.014706
ANV 0.035115
BCG -0.093492
BCM 0.161648

Bây giờ chúng ta sử dụng hàm của alphalens để tính toán factor_data sử dụng cho việc phân tích

In [7]:
factor_data = al.utils.get_clean_factor_and_forward_returns(factor=momentum,
                                                            prices=prices,
                                                            quantiles=5,
                                                            max_loss=0.2,
                                                            periods=(3, 10, 21))
Dropped 19.3% entries from factor data: 19.3% in forward returns computation and 0.0% in binning phase (set max_loss=0 to see potentially suppressed Exceptions).
max_loss is 20.0%, not exceeded: OK!
In [8]:
factor_data.head()
Out[8]:
3D 10D 21D factor factor_quantile
date asset
2024-07-30 AAA -0.058333 -0.125000 -0.154167 0.071429 5
ACB -0.008282 -0.022774 0.014493 0.014706 4
ANV -0.044248 -0.064896 -0.050146 0.035115 5
BCG -0.026380 -0.078076 -0.032124 -0.093492 1
BCM -0.061392 -0.028649 -0.051842 0.161648 5

Lợi nhuận kỳ vọng là những lợi nhuận mà chúng ta sẽ nhận được khi nắm giữ từng chứng khoán cho một số ngày nhất định, kết thúc vào ngày đã cho (ở đây chúng ta tính cho 3, 10, 21 ngày).

Chức năng này cũng tách các yếu tố của chúng ta thành các phân vị cho mỗi ngày, thay thế giá trị yếu tố bằng phân vị tương ứng của nó vào một ngày nhất định. Vì chúng ta sẽ nắm giữ các giỏ cổ phiếu của các phân vị cao nhất và thấp nhất, nên chúng ta chỉ quan tâm đến yếu tố này liên quan đến sự di chuyển vào và ra khỏi các giỏ cổ phiếu này.

Alphalens cung cấp bốn loại phân tích về các yếu tố alpha:

  • Phân phối yếu tố
  • Lợi nhuận
  • Thông tin
  • Tỷ lệ chuyển nhượng

Mỗi chủ đề này đều được đề cập trong một tear sheet riêng biệt cũng như một tear sheet tổng hợp toàn diện.

Bảng Phân Phối Yếu Tố¶

Một bảng thông tin đầy đủ bắt đầu với một bảng thống kê mô tả sự phân phối của các giá trị yếu tố. Bảng này có thể được hiển thị độc lập với mã sau:

In [9]:
al.plotting.plot_quantile_statistics_table(factor_data)
Quantiles Statistics
min max mean std count count %
factor_quantile
1 -0.284211 0.019923 -0.080414 0.048909 1760 20.000000
2 -0.158385 0.056401 -0.038331 0.037545 1760 20.000000
3 -0.119601 0.081632 -0.012133 0.034589 1761 20.011364
4 -0.089041 0.122699 0.015293 0.032745 1761 20.011364
5 -0.029948 0.516930 0.080959 0.064820 1758 19.977273

Bảng này bao gồm một hàng cho mỗi phần tử phân vị của yếu tố. Mặc định, các yếu tố được chia thành 5 phân vị có kích thước bằng nhau; điều này có thể được thay đổi bằng cách sử dụng tham số quantiles cho hàm get_clean_factor_and_forward_returns.

Đối với mỗi phân vị, chúng ta thấy giá trị nhỏ nhất, lớn nhất, trung bình và độ lệch chuẩn của các giá trị yếu tố. Điều này giúp chúng ta có cái nhìn về các giá trị yếu tố nào đang nằm trong các phân vị nào.

Chúng ta cũng thấy tổng số lượng giá trị cho mỗi phân vị trong toàn bộ phân tích, số lượng trung bình hàng ngày cho mỗi phân vị, và tỷ lệ phần trăm số lượng cho mỗi phân vị. Ở đây, vì chúng ta đã sử dụng các phân vị có kích thước bằng nhau (tùy chọn mặc định), nên số lượng là giống nhau cho mỗi phân vị. Ngược lại, chúng ta có thể đã chỉ định tham số bins cho get_clean_factor_and_forward_returns (hoặc các hàm thường được sử dụng hơn được trình bày sau trong bài giảng) thay vì quantiles. Sử dụng tham số bins dẫn đến các phân vị có chiều rộng bằng nhau (cách nhau theo phạm vi tổng thể của các giá trị yếu tố) thay vì các phân vị có kích thước bằng nhau. Trong trường hợp đó, số lượng thường sẽ khác nhau cho các phân vị khác nhau.

Bảng Tóm Tắt Lợi Nhuận¶

Nếu chúng ta chỉ quan tâm đến lợi nhuận, chúng ta có thể tạo một bảng tóm tắt chỉ chứa phân tích lợi nhuận. Khối mã dưới đây sẽ tạo tất cả các biểu đồ lợi nhuận của chúng ta sau khi chúng ta đã lưu trữ dữ liệu lợi nhuận trong tương lai:

In [10]:
al.tears.create_returns_tear_sheet(factor_data)
Returns Analysis
3D 10D 21D
Ann. alpha 0.060 0.115 0.073
beta -0.131 -0.137 0.053
Mean Period Wise Return Top Quantile (bps) 3.688 8.773 6.616
Mean Period Wise Return Bottom Quantile (bps) 10.011 1.481 -2.005
Mean Period Wise Spread (bps) -6.323 7.210 8.502
<Figure size 640x480 with 0 Axes>
No description has been provided for this image

Phân Tích Bảng Lợi Nhuận¶

Bảng Ước Tính Điểm $\alpha$ và $\beta$¶

Bảng tính toán giá trị $\alpha$ và $\beta$ của yếu tố của chúng ta so với thị trường. Những giá trị này được tính bằng cách tạo một hồi quy giữa lợi nhuận của thị trường trong mỗi khoảng thời gian với một danh mục đầu tư yếu tố Long-Short và lấy các tham số. Những giá trị này biểu thị lợi nhuận vượt trội liên quan đến yếu tố của chúng ta và beta thị trường, tương ứng.

Bảng Ước Tính Điểm Lợi Nhuận¶

Những ước tính điểm này cũng được tính mà không phụ thuộc vào các nhóm ngành, vì vậy chúng cung cấp cho chúng ta cái nhìn tổng thể về cách mà chênh lệch của chúng ta sẽ trông như thế nào nếu chúng ta giao dịch yếu tố này với một thuật toán cổ phiếu Long-Short và không xem xét xem các lợi nhuận đó đến từ ngành nào.

Lợi Nhuận Trung Bình Tương Đối Theo Phân Vị Yếu Tố¶

Yếu tố được lượng hóa được sử dụng để tạo ra các giỏ riêng biệt, với lợi nhuận cho mỗi giỏ được tính toán trong từng khoảng thời gian nhất định. Chúng tôi nhận được thông tin này dưới dạng biểu đồ cột và biểu đồ violin.

Những biểu đồ này cung cấp một tóm tắt tổng thể đơn giản nhất về giá trị dự đoán của yếu tố. Đối với một yếu tố dự đoán, chúng ta muốn thấy lợi nhuận trung bình tăng theo cách đơn điệu (hoặc giảm theo cách đơn điệu) theo từng phân vị từ trái sang phải.

Các biểu đồ cột cung cấp cho chúng ta lợi nhuận trung bình cho mỗi phân vị yếu tố, cho mỗi khoảng thời gian. Điều này cho chúng ta một tập hợp các ước tính điểm để có được hiểu biết sơ bộ về cách mà giá trị yếu tố theo dõi với lợi nhuận.

Sự khác biệt chính giữa biểu đồ cột và biểu đồ violin là biểu đồ violin cho thấy mật độ của dữ liệu của chúng ta. Càng mập mạp, mật độ lợi nhuận trong khu vực đó càng cao. Ở đây, chúng tôi vẽ biểu đồ violin cho lợi nhuận trong $3$, $10$, và $21$ ngày tiếp theo cho mỗi phân vị.

Lợi Nhuận Tích Lũy của Danh Mục Đầu Tư Dựa Trên Yếu Tố¶

Biểu đồ này cho thấy lợi nhuận tích lũy của một chiến lược cổ phiếu theo phương pháp phân tích theo yếu tố dựa trên yếu tố đầu vào. Danh mục đầu tư nắm giữ mọi tài sản trong tập vũ trụ được cân nhắc theo giá trị yếu tố của nó và được tái cân bằng hàng ngày. Theo mặc định, danh mục đầu tư là danh mục Long-Short, trong đó mọi tài sản có giá trị yếu tố cao hơn trung bình hàng ngày được nắm giữ Long và mọi tài sản có giá trị yếu tố thấp hơn trung bình hàng ngày được nắm giữ Short. Vì danh mục đầu tư được cân nhắc theo yếu tố, các tài sản có giá trị yếu tố gần trung bình có trọng số tuyệt đối nhỏ hơn và các tài sản có giá trị yếu tố xa trung bình có trọng số tuyệt đối lớn hơn. Lưu ý rằng điều này có nghĩa là biểu đồ lợi nhuận tích lũy có thể bị chi phối bởi một số lượng nhỏ các điểm ngoại lai có giá trị rất xa so với trung bình. Vì lý do này, bạn nên bổ sung biểu đồ này với các biểu đồ Lợi Nhuận Tích Lũy theo Phân Vị, sử dụng phương pháp chia đều vốn ít nhạy cảm hơn với các điểm ngoại lai.

Lợi Nhuận Tích Lũy Thực Tế theo Phân Vị¶

Biểu đồ này giống hệt với biểu đồ trước đó, ngoại trừ việc biểu đồ này hiển thị lợi nhuận thực tế của từng phân vị trong khi biểu đồ trước hiển thị lợi nhuận tương đối (tức là, so với lợi nhuận trung bình hàng ngày tổng thể). Khi kết hợp, các biểu đồ này có thể tiết lộ (ví dụ) liệu phân vị thấp nhất của các cổ phiếu, có thể là ứng cử viên cho việc bán khống trong chiến lược Long-Short, có lợi nhuận âm (và do đó có thể được bán khống có lợi) hay chỉ đơn giản là có lợi nhuận ít tích cực hơn so với các phân vị cao hơn (và do đó có thể cung cấp một biện pháp phòng vệ).

Lợi Nhuận Trung Bình Phân Vị theo BPS¶

Tiếp theo, chúng ta tính toán điểm căn bản của chênh lệch, dựa trên việc trừ lợi nhuận trung bình của phân vị thấp nhất từ lợi nhuận trung bình của phân vị cao nhất (mô phỏng việc bán khống phân vị thấp nhất và nắm giữ phân vị cao nhất). Chúng ta cũng tính toán sai số và vẽ tất cả lại cùng nhau, cung cấp cho chúng tôi một chuỗi thời gian của các BPS với khoảng tin cậy cho mỗi khoảng thời gian.

Tờ Thông Tin¶

Tương tự như tờ thông tin về lợi nhuận, chúng ta cũng có thể tạo một tờ thông tin chỉ cung cấp dữ liệu về hệ số thông tin.

In [11]:
al.tears.create_information_tear_sheet(factor_data)
Information Analysis
3D 10D 21D
IC Mean -0.030 -0.026 -0.016
IC Std. 0.203 0.184 0.129
Risk-Adjusted IC -0.149 -0.142 -0.124
t-stat(IC) -1.394 -1.329 -1.166
p-value(IC) 0.167 0.187 0.247
IC Skew 0.119 -0.168 -0.068
IC Kurtosis -0.437 -0.740 -0.577
<Figure size 640x480 with 0 Axes>
No description has been provided for this image

Ước lượng điểm IC¶

Bảng đầu tiên cung cấp cho chúng ta các số liệu thống kê về phân phối của hệ số thông tin cho mỗi khoảng thời gian. Điều này bao gồm trung bình, độ lệch chuẩn, độ lệch và độ nhọn, nhằm mang lại cái nhìn rõ ràng về hình dạng của phân phối.

Chuỗi thời gian IC¶

Ở đây, chúng ta vẽ biểu đồ IC như một chuỗi thời gian cho mỗi giai đoạn cùng với trung bình động 1 tháng để làm mượt đi. Điều chúng ta muốn ở đây là sự nhất quán theo thời gian và một tín hiệu thông tin ổn định.

Biểu đồ histogram IC¶

Biểu đồ histogram rất tốt để cho chúng ta thấy phân phối của IC. Những biểu đồ này sẽ rõ ràng thể hiện bất kỳ điểm ngoại lệ kỳ lạ nào và cách chúng ảnh hưởng đến đường cong tổng thể.

Biểu đồ QQ IC¶

Biểu đồ QQ so sánh phân phối của IC với phân phối chuẩn. Nó vẽ các phần trăm của một phân phối so với các phần trăm của phân phối khác, thường có một đường tham chiếu tại $y = x$. Nếu các điểm trong biểu đồ QQ rơi hoàn toàn dọc theo đường này, điều này cho thấy rằng hai phân phối là giống nhau. Trong thực tế, một biểu đồ QQ đóng vai trò như một thước đo sự tương đồng giữa các phân phối. Nói chung, điều chúng ta muốn thấy ở đây là một đường cong hình chữ S. Điều này cho thấy rằng các đuôi của phân phối IC dày hơn và chứa nhiều thông tin hơn.

Lượt Chuyển Đổi¶

Khi xem xét tác động của việc thực hiện một tín hiệu trong chiến lược, Lượt Chuyển Đổi là một yếu tố quan trọng cần cân nhắc. Biểu đồ này cho thấy Lượt Chuyển Đổi của các phần trăm hàng đầu và hàng dưới của yếu tố của bạn, những giỏ mà bạn thực sự sẽ giao dịch theo cách Long-Short. Lượt Chuyển Đổi quá mức sẽ làm giảm lợi nhuận của chiến lược bạn thông qua chi phí hoa hồng. Đôi khi một tín hiệu chỉ không đủ mạnh để chống lại xu hướng mà bạn phải đối mặt thông qua nhà môi giới của mình.

Bảng Tóm Tắt Lượt Chuyển Đổi¶

Chúng ta có thể xem xét hai chỉ số riêng biệt về Lượt Chuyển Đổi bằng cách sử dụng Alphalens, đó là tỷ lệ Lượt Chuyển Đổi và tự tương quan yếu tố.

In [12]:
al.tears.create_turnover_tear_sheet(factor_data);
Turnover Analysis
3D 10D 21D
Quantile 1 Mean Turnover 0.321 0.560 0.785
Quantile 2 Mean Turnover 0.581 0.726 0.802
Quantile 3 Mean Turnover 0.612 0.748 0.791
Quantile 4 Mean Turnover 0.558 0.724 0.803
Quantile 5 Mean Turnover 0.309 0.540 0.801
3D 10D 21D
Mean Factor Rank Autocorrelation 0.807 0.47 -0.046
<Figure size 640x480 with 0 Axes>
No description has been provided for this image

Lượt Chuyển Đổi Phân Vị¶

Bảng đầu tiên là biểu đồ lượt chuyển đổi cho mỗi phân vị theo từng khoảng thời gian. Điều này cho thấy tỷ lệ phần trăm các tên gọi di chuyển vào và ra khỏi mỗi giỏ.

Tự Tương Quan Yếu Tố¶

Tự tương quan yếu tố là thước đo sự tương quan giữa giá trị hiện tại của yếu tố và giá trị trước đó của nó. Ý tưởng đằng sau việc tính toán này là cung cấp một thước đo khác về lượt chuyển đổi của các phân vị yếu tố. Nếu tự tương quan thấp, điều đó có nghĩa là giá trị hiện tại của yếu tố ít liên quan đến giá trị trước đó và rằng các vị thế danh mục đang thay đổi thường xuyên từ khoảng thời gian này sang khoảng thời gian khác. Nếu giá trị tiếp theo của yếu tố bị ảnh hưởng đáng kể bởi giá trị cuối cùng của nó, điều này có nghĩa là cách phân loại của bạn nhất quán hơn (mặc dù điều này không ảnh hưởng đến khả năng dự đoán sự biến động giá tương đối).

Lượt Chuyển Đổi Phân Vị Cao và Thấp¶

Biểu đồ này cho thấy lượt chuyển đổi khá bình thường cho yếu tố, ngụ ý rằng chúng ta sẽ không bị ảnh hưởng quá nhiều bởi việc thay đổi liên tục các vị thế danh mục, mặc dù điều này thay đổi từ khoảng thời gian này sang khoảng thời gian khác. Tuy nhiên, chúng ta không thể thấy chi phí trực tiếp, vì Alphalens không mô hình hóa chi phí hoa hồng. Nó chỉ cung cấp các chỉ số mà chúng ta có thể sử dụng để đánh giá một yếu tố riêng lẻ. Để mô hình hóa đúng các yếu tố ảnh hưởng tiêu cực như trượt giá và hoa hồng, bạn sẽ cần triển khai một chiến lược sử dụng yếu tố của bạn trong một bài kiểm tra lại.

Tự Tương Quan¶

Tập hợp biểu đồ thứ hai trong trang số lượt chuyển đổi là tự tương quan yếu tố theo thời gian. Trong trường hợp này, chúng ta có tự tương quan khá cao, xác nhận các biểu đồ lượt chuyển đổi từ trên cho thấy các vị thế danh mục nhất quán hơn.

Tờ Thông Tin Đầy Đủ Về Yếu Tố¶

Chúng tôi cũng có thể tạo tất cả các biểu đồ và thống kê ở trên trong một tờ thông tin đầy đủ. Nếu bạn đã làm theo các bước trên để tạo dữ liệu yếu tố và lợi suất trong tương lai, bạn có thể tạo một tờ thông tin đầy đủ tất cả cùng một lúc như sau:

In [13]:
al.tears.create_full_tear_sheet(factor_data)
Quantiles Statistics
min max mean std count count %
factor_quantile
1 -0.284211 0.019923 -0.080414 0.048909 1760 20.000000
2 -0.158385 0.056401 -0.038331 0.037545 1760 20.000000
3 -0.119601 0.081632 -0.012133 0.034589 1761 20.011364
4 -0.089041 0.122699 0.015293 0.032745 1761 20.011364
5 -0.029948 0.516930 0.080959 0.064820 1758 19.977273
Returns Analysis
3D 10D 21D
Ann. alpha 0.060 0.115 0.073
beta -0.131 -0.137 0.053
Mean Period Wise Return Top Quantile (bps) 3.688 8.773 6.616
Mean Period Wise Return Bottom Quantile (bps) 10.011 1.481 -2.005
Mean Period Wise Spread (bps) -6.323 7.210 8.502
<Figure size 640x480 with 0 Axes>
No description has been provided for this image
Information Analysis
3D 10D 21D
IC Mean -0.030 -0.026 -0.016
IC Std. 0.203 0.184 0.129
Risk-Adjusted IC -0.149 -0.142 -0.124
t-stat(IC) -1.394 -1.329 -1.166
p-value(IC) 0.167 0.187 0.247
IC Skew 0.119 -0.168 -0.068
IC Kurtosis -0.437 -0.740 -0.577
No description has been provided for this image
Turnover Analysis
3D 10D 21D
Quantile 1 Mean Turnover 0.321 0.560 0.785
Quantile 2 Mean Turnover 0.581 0.726 0.802
Quantile 3 Mean Turnover 0.612 0.748 0.791
Quantile 4 Mean Turnover 0.558 0.724 0.803
Quantile 5 Mean Turnover 0.309 0.540 0.801
3D 10D 21D
Mean Factor Rank Autocorrelation 0.807 0.47 -0.046
No description has been provided for this image

Thêm về Các yếu tố¶

Việc nghĩ ra các yếu tố mới là điều tốt, nhưng thường thì bạn sẽ cần nhiều yếu tố dự đoán độc lập để tạo ra một tín hiệu đủ ổn định để giao dịch. Các phương pháp kết hợp các yếu tố lại với nhau sẽ được thảo luận trong các bài giảng tiếp theo, nhưng cách tiếp cận đơn giản nhất ban đầu sẽ là chuẩn hóa giá trị của từng yếu tố mà bạn muốn đưa vào tổng hợp, cộng các yếu tố đã chuẩn hóa mới lại với nhau, và xếp hạng theo giá trị yếu tố kết hợp mới này.

Các bước tiếp theo¶

Khi bạn đã có một yếu tố trông có vẻ tốt, bước tiếp theo là triển khai nó trong một thuật toán. Thật không may, chỉ có một tín hiệu tốt là chưa đủ. Các thuật toán giao dịch phải xem xét nhiều yếu tố khác mà không được bao gồm trong Alphalens. Chúng ta cần xem xét cách mà thị trường sẽ phản ứng với các giao dịch mà chúng ta thực hiện (tác động thị trường/giá trượt) cũng như chi phí giao dịch liên quan đến việc thực hiện những giao dịch đó. Những ảnh hưởng này có thể làm giảm lợi nhuận của chúng ta nếu chúng ta không đánh giá đúng tác động của chúng thông qua việc kiểm tra kỹ lưỡng.


Lưu ý: Tài liệu này mang tính chất chia sẻ kiến thức khoa học dữ liệu. Các mã chứng khoán xuất hiện trong tài liệu chỉ mang tính chất minh hoạ, không khuyến nghị đầu tư. Chúng tôi không chịu trách nhiệm trước mọi rủi ro nào do sử dụng tài liệu này.